﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace QuanlyThoiGian
{
    public partial class FormNguoiDung : Form
    {
        private bool change = false;

        public FormNguoiDung()
        {
            InitializeComponent();
        }

        private void nguoiDungBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
            this.Validate();
            this.nguoiDungBindingSource.EndEdit();
            this.tableAdapterManager.UpdateAll(this.quanLyThoiGianDataSet);
            change = false;

        }

        private void FormNguoiDung_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'quanLyThoiGianDataSet.NguoiDung' table. You can move, or remove it, as needed.
            this.nguoiDungTableAdapter.Fill(this.quanLyThoiGianDataSet.NguoiDung);
        }

        private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
        {
            AnButton_Click(sender, e);

            this.manvTextBox.DataBindings.Clear();
            this.tennvTextBox.DataBindings.Clear();
            this.matkhauTextBox.DataBindings.Clear();

            this.manvTextBox.Text = "";
            this.tennvTextBox.Text = "";
            this.matkhauTextBox.Text = "";

            this.panel1.Visible = true;
            this.manvTextBox.Enabled = true;
            this.ThemButton.Visible = true;
        }

        private void LuuButton_Click(object sender, EventArgs e)
        {
            nguoiDungBindingNavigatorSaveItem_Click(sender, e);
        }

        private void EditButton_Click(object sender, EventArgs e)
        {
            AnButton_Click(sender, e);

            this.panel1.Visible = true;
            this.manvTextBox.Enabled = false;
            errorProvider1.Clear();
            this.LuuButton.Visible = true;

            try
            {
                this.manvTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.nguoiDungBindingSource, "manv", true));
                this.tennvTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.nguoiDungBindingSource, "tennv", true));
                this.matkhauTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.nguoiDungBindingSource, "matkhau", true));
            }
            catch (ArgumentException) { }
        }

        private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
        {
            nguoiDungBindingNavigatorSaveItem_Click(sender, e);
        }

        private void FormNguoiDung_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (change) {
                DialogResult result = MessageBox.Show(this,"Bạn có muốn lưu dữ liệu lại không ?","Quản lý người dùng",MessageBoxButtons.YesNo);
                if (result == DialogResult.Yes) nguoiDungBindingNavigatorSaveItem_Click(sender,e);
                change = false;
            }
        }
        /// <summary>
        /// An panel1
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void AnButton_Click(object sender, EventArgs e)
        {
            this.panel1.Visible = false;
            this.ThemButton.Visible = false;
            this.LuuButton.Visible = false;
            errorProvider1.Clear();
        }

        /// <summary>
        /// Thêm tài khoản người dùng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ThemButton_Click(object sender, EventArgs e)
        {
            String manv = null;
            String tennv = null;
            String matkau = null;
            Boolean quyen = false;

            manv = this.manvTextBox.Text;
            tennv = this.tennvTextBox.Text;
            matkau = this.matkhauTextBox.Text;

            try
            {
                nguoiDungTableAdapter.InsertNguoiDung(manv, tennv, matkau, quyen);
                FormNguoiDung_Load(sender, e);
            }
            catch (ArgumentNullException)
            {
                if (manvTextBox.Text == "") errorProvider1.SetError(manvTextBox, "Mã nhân viên không hợp lệ !");
                else errorProvider1.SetError(manvTextBox, "");

                if (matkhauTextBox.Text == "") errorProvider1.SetError(matkhauTextBox, "Mật khẩu này không hợp lệ !");
                else errorProvider1.SetError(matkhauTextBox, "");

            }
            catch (SqlException)
            {
                errorProvider1.SetError(manvTextBox, "Mã nhân viên này đã tồn tại");
            }
        }

        private void manvTextBox_Leave(object sender, EventArgs e)
        {
            if (manvTextBox.Text == "") {
                errorProvider1.SetError(manvTextBox, "Mã nhân viên không hợp lệ !");
            }        
            else errorProvider1.SetError(manvTextBox, "");
        }

        private void matkhauTextBox_Leave(object sender, EventArgs e)
        {
            if (matkhauTextBox.Text == "") errorProvider1.SetError(matkhauTextBox, "Mật khẩu này không hợp lệ !");
            else errorProvider1.SetError(matkhauTextBox, "");
        }

        private void nguoiDungDataGridView_DoubleClick(object sender, EventArgs e)
        {
            EditButton_Click(sender, e);
        }
    }
}
